/*
 * 版权所有(C)，上海海鼎信息工程股份有限公司，lizhixing，所有权利保留。
 * <p>
 * 项目名：	lovely626
 * 文件名：	JoinTest
 * 模块说明：
 * 修改历史：
 * 2024/7/16 - lizhixing - 创建。
 */
package com.lovely602.thread.method;

/**
 * @author lizhixing
 */
public class JoinTest {

  // 1.现在有T1、T2、T3三个线程，你怎样保证T2在T1执行完后执行，T3在T2执行完后执行

  public static void main(String[] args) {

    final Thread t1 = new Thread(new Runnable() {

      @Override
      public void run() {
        System.out.println("t1");
      }
    });

    final Thread t2 = new Thread(new Runnable() {

      @Override
      public void run() {
        try {
          // 引用t1线程，等待t1线程执行完
          t1.join();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        System.out.println("t2");
      }
    });

    Thread t3 = new Thread(new Runnable() {

      @Override
      public void run() {
        try {
          // 引用t2线程，等待t2线程执行完
          t2.join();
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        System.out.println("t3");
      }
    });

    t2.start();
    t3.start();//这里三个线程的启动顺序可以任意，大家可以试下！
    t1.start();

  }

}
